package Data_Structure.DataImplement;

import java.util.function.ObjIntConsumer;

/**
 * Seat method.
 *
 * @author Yibai Jiang
 * @author XiaorunWang
 * @version 1.0
 * @since 30 March 2022
 */
public interface SeatClassAndPrice {
    /**
     * The seat type of Boeing737.
     */
    String[] Boeing737SeatClass = {
            "ClassA", "ClassB", "ClassC"
    };
//    enum Boeing737SeatClass implements SeatClass{
//        ClassA,
//        ClassB,
//        ClassC
//    }

    /**
     * The seat type of AirbusA320.
     */
    String[] AirbusA320SeatClass = {
            "ClassA", "ClassB"
    };
//    enum AirbusA320SeatClass implements SeatClass {
//        ClassA,
//        ClassB
//    }

    /**
     * The A type seat position of Boeing737.
     */
    String[] Boeing737SeatClassAPosition = {
            "A1", "A2", "A3", "A4",
            "B1", "B2", "B3", "B4"
    };
//    enum Boeing737SeatClassAPosition implements SeatPosition  {
//        A1, A2, A3, A4,
//        B1, B2, B3, B4
//    }

    /**
     * The B type seat position of Boeing737.
     */
    String[] Boeing737SeatClassBPosition = {
            "C1", "C2", "C3", "C4", "C5", "C6", "C7",
            "D1", "D2", "D3", "D4", "D5", "D6", "D7",
            "E1", "E2", "E3", "E4", "E5", "E6", "E7"
    };
//    enum Boeing737SeatClassBPosition implements SeatPosition {
//        C1,C2,C3,C4,C5,C6,C7,
//        D1,D2,D3,D4,D5,D6,D7,
//        E1,E2,E3,E4,E5,E6,E7,
//    }

    /**
     * The C type seat position of Boeing737.
     */
    String[] Boeing737SeatClassCPosition = {
            "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8",
            "G1", "G2", "G3", "G4", "G5", "G6", "G7", "G8",
            "H1", "H2", "H3", "H4", "H5", "H6", "H7", "H8",
            "I1", "I2", "I3", "I4", "I5", "I6", "I7", "I8",
    };
//    enum Boeing737SeatClassCPosition implements SeatPosition {
//        F1, F2, F3, F4, F5, F6, F7, F8,
//        G1, G2, G3, G4, G5, G6, G7, G8,
//        H1, H2, H3, H4, H5, H6, H7, H8,
//        I1, I2, I3, I4, I5, I6, I7, I8,
//    }

    /**
     * The A type seat position of AirbusA320.
     */
    String[] AirbusA320SeatClassAPosition = {
            "A1", "A2", "A3", "A4",
            "B1", "B2", "B3", "B4"
    };

//    enum AirbusA320SeatClassAPosition implements SeatPosition {
//        A1, A2, A3, A4,
//        B1, B2, B3, B4
//    }

    /**
     * The B type seat position of AirbusA320.
     */
    String[] AirbusA320SeatClassBPosition = {
            "C1", "C2", "C3", "C4", "C5", "C6", "C7",
            "D1", "D2", "D3", "D4", "D5", "D6", "D7",
            "E1", "E2", "E3", "E4", "E5", "E6", "E7"
    };
//    enum AirbusA320SeatClassBPosition implements SeatPosition {
//        C1,C2,C3,C4,C5,C6,C7,
//        D1,D2,D3,D4,D5,D6,D7,
//        E1,E2,E3,E4,E5,E6,E7,
//    }

    int Boeing737SeatClassAPrice = 200;
    int Boeing737SeatClassBPrice = 100;
    int Boeing737SeatClassCPrice = 50;

    int AirbusA320SeatClassAPrice = 200;
    int AirbusA320SeatClassBPrice = 100;

    /**
     * Create seat and class.
     *
     * @param seatClass    the seat class
     * @param seatPosition the seat position
     * @param seatPrice    the seat price
     */
    void createSeatClassAndPrice(String seatClass, String seatPosition, int seatPrice);
}
